package com.lframework.xingyun.basedata.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.time.LocalDateTime;

import com.lframework.starter.web.core.dto.BaseDto;
import com.lframework.starter.web.core.entity.BaseEntity;
import lombok.Data;

/**
 * 商品成本卡明细
 *
 * @author zmj
 * @since 2024-01-01
 */
@Data
@TableName("base_data_product_cost_card_detail")
public class ProductCostCardDetail extends BaseEntity implements BaseDto {

  private static final long serialVersionUID = 1L;

  public static final String CACHE_NAME = "ProductCostCardDetail";

  /**
   * ID
   */
  private String id;

  /**
   * 成本卡ID
   */
  private String costCardId;

  /**
   * 源成分商品ID
   */
  private String sourceProductId;

  /**
   * 成分商品ID
   */
  private String ingredientProductId;

  /**
   * 消耗单位ID
   */
  private String unitId;

  /**
   * 消耗数量
   */
  private Integer consumeQuantity;

  /**
   * 类型 0=主成分 1=替换品
   */
  private Integer type;

  /**
   * 单位成本
   */
  private BigDecimal unitCost;

  /**
   * 总成本
   */
  private BigDecimal totalCost;

  /**
   * 排序号
   */
  private Integer orderNo;

  /**
   * 备注
   */
  private String description;

  /**
   * 创建人ID 新增时赋值
   */
  @TableField(fill = FieldFill.INSERT)
  private String createById;

  /**
   * 创建人 新增时赋值
   */
  @TableField(fill = FieldFill.INSERT)
  private String createBy;

  /**
   * 创建时间 新增时赋值
   */
  @TableField(fill = FieldFill.INSERT)
  private LocalDateTime createTime;

  /**
   * 修改人 新增和修改时赋值
   */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private String updateBy;

  /**
   * 修改人ID 新增和修改时赋值
   */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private String updateById;

  /**
   * 修改时间 新增和修改时赋值
   */
  @TableField(fill = FieldFill.INSERT_UPDATE)
  private LocalDateTime updateTime;
} 